/* ---------------------------- 所有接口 ---------------------------------*/

// 所有控制器
const ArticleController = require('../../controllers/article') // 文章
const TagController = require('../../controllers/tag') // 文章标签
const MsgController = require('../../controllers/msg') // 用户评论
const UserController = require('../../controllers/user') // 用户
const SystemController = require('../../controllers/system') // 系统参数
const TestController = require('../../controllers/test') // 文件管理

// 建立新路由 前缀 '/api/v1'

const router = require('koa-router')({
  prefix: '/api/v1/client'
})


  // 文章
  .use('/article', require('koa-router')()
    // 获取文章
    .get('/list', ArticleController.listArticle)
    // 获取指定文章
    .get('/detail', ArticleController.getArticleDetail)
    // 时间轴
    .get('/timeline', ArticleController.getTimeline)
    // 获取文章点赞数和浏览数
    .get('/info', ArticleController.getArticleInfo)
    // 更新文章点赞数和浏览数
    .put('/info', ArticleController.updateArticleInfo)
    // 搜索文章
    .get('/search', ArticleController.searchArticle)
    // 文章评论加载
    .get('/comment/load', MsgController.loadArticleComment)

    .routes()
  )

  // 标签
  .use('/tag', require('koa-router')()
    // 获取所有标签
    .get('/list', TagController.listTag)
    // 获取指定标签详情
    .get('/detail', TagController.listTagDetail)
    .routes()
  )

  .use('/msg', require('koa-router')()
    // 发表留言
    .post('/message/create', MsgController.createMessage)
    // 获取留言列表
    .get('/message/list', MsgController.listMessage)
    // 删除留言
    .delete('/message/delete', MsgController.deleteMessage)

    // 评论
    .post('/comment/create', MsgController.createComment)
    // 删除评论
    .delete('/comment/delete', MsgController.deleteComment)

    // 发表回复
    .post('/reply/create', MsgController.createReply)
    // 加载个人消息
    .get('/reply/load', MsgController.loadReply)
    // 删除回复
    .delete('/reply/delete', MsgController.deleteReply)
    .routes()
  )

  // 用户
  .use('/user', require('koa-router')()
    // 用户登录
    .post('/login', UserController.loginUser)
    // 令牌登录
    .post('/login/token', UserController.loginToken)
    // 匿名用户注册
    .post('/register/anonymity', UserController.registerAnonymity)
    // 用户注册
    .post('/register', UserController.registerUser)
    // 获取指定用户详情
    .get('/info', UserController.getUserInfo)
    // 获取登录用户信息
    .get('/loginInfo', UserController.getLoginInfo)
    // 更新用户信息
    .put('/update', UserController.updateUser)

    .routes()
  )

  // 系统参数
  .use('/system', require('koa-router')()
    // 记录ip
    .post('/ip', SystemController.recordIP)
    // 发送邮箱验证码
    .post('/mailCode', SystemController.sendMailCode)
    // 邮箱验证
    .post('/mailVerify', SystemController.verifyMailCode)
    // 发送邮件
    .post('/mail', SystemController.sendMail)
    .routes()
  )

module.exports = router